% 频域滤波的自定义函数
function filteredImg = frequency_filtering(img, filterType)
    img_gray = rgb2gray(img);  % 如果是彩色图像，先转换为灰度图
    F = fft2(img_gray);  % 对图像进行傅里叶变换
    Fshift = fftshift(F);  % 将零频率分量移到频谱的中心
    
    [M, N] = size(Fshift);
    [U, V] = meshgrid(1:N, 1:M);
    D = sqrt((U - N/2).^2 + (V - M/2).^2);  % 频率距离

    if strcmp(filterType, 'lowpass')
        % 低通滤波器
        D0 = 50;  % 截止频率
        H = double(D <= D0);  % 低通滤波器
    elseif strcmp(filterType, 'highpass')
        % 高通滤波器
        D0 = 50;  % 截止频率
        H = double(D > D0);  % 高通滤波器
    else
        error('不支持的滤波类型');
    end

    % 应用滤波器
    Fshift_filtered = Fshift .* H;
    F_filtered = ifftshift(Fshift_filtered);  % 逆移频谱
    filteredImg = abs(ifft2(F_filtered));  % 逆傅里叶变换
end
